/*
 * 文件名称:          MySql5ClusterDBDialect.java
 * 版权所有@ 2016——2017 无锡聆音科技有限公司，保留所有权利
 * 时间:             2016年7月27日 下午9:21:11
 */
package com.lingyin.database.transaction.dialect;

import java.sql.Types;

import org.hibernate.dialect.MySQL5Dialect;
import org.hibernate.dialect.function.SQLFunctionTemplate;
import org.hibernate.type.StringType;

/**
 *  对mysql集群处理的时候，如果字符有设置超过255的原来方言有
 *  问题，这里修改下
 * 
 * @项目        hibernate.database.transaction
 * 
 * @作者:       关宏新
 * 
 * @日期:       2016年7月27日
 * 
 * @负责人:    关宏新
 * 
 * @负责小组:   聆音项目组
 * 
 */

public class MySql5ClusterDBDialect extends MySQL5Dialect
{
    public MySql5ClusterDBDialect()
    {
        super();
        registerFunction("convert_gbk", new SQLFunctionTemplate(new StringType(), "convert(?1 using gbk)"));
        registerFunction("convert", new SQLFunctionTemplate(new StringType(), "convert(?1 using ?2)"));
    }
    
    protected void registerVarcharTypes() 
    {
        registerColumnType(Types.VARCHAR, "longtext" );
        registerColumnType(Types.VARCHAR, 255, "varchar($l)" );
        registerColumnType(Types.LONGVARCHAR, "longtext" );
    }
    
    public String getTableTypeString() 
    {
        return " ENGINE=ndbcluster";
    }
}
